package org.glut.wechat.moments.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import org.glut.wechat.moments.domain.MomentsNotice;
import org.glut.wechat.moments.vo.MomentNoticeItemVO;
import org.glut.wechat.moments.vo.UnreadCountVO;

import java.util.List;

/**
 * 朋友圈消息通知服务接口
 */
public interface MomentsNoticeService extends IService<MomentsNotice> {


    /**
     * 根据通知用户ID分页查询通知列表
     * @param page 分页对象
     * @param noticeUserId 通知用户ID
     * @return 分页结果
     */
    IPage<MomentNoticeItemVO> getNoticesByNoticeUserId(Page<MomentNoticeItemVO> page, Integer noticeUserId);


    /**
     * 批量标记为已读
     * @param noticeUserId 通知用户ID
     * @return 影响的记录数
     */
    void markAllAsRead(Integer noticeUserId);

    /**
     * 统计用户未读通知数量
     * @param noticeUserId 通知用户ID
     * @return 未读通知数量
     */
    Integer countUnreadNotices(Integer noticeUserId);

    /**
     * 删除通知
     * @param id 通知ID
     * @return 是否成功
     */
    void deleteNotice(Integer id);

    UnreadCountVO noticeRead(Integer noticeUserId);
}
